﻿//Everyone

using System;

namespace Tzync
{
    public class InvalidPathException : Exception
    {
        private String path;
        private ActionType type;

        public InvalidPathException(String _path, ActionType _type)
        {
            path = _path;
            type = _type;
        }

        public String FilePath
        {
            get { return path; }
            set { path = value; }
        }

        public ActionType Type
        {
            get { return type; }
            set { type = value; }
        }        
    }

    class ArgumentNullException : Exception
    {
        private String path;
        private ActionType type;

        public ArgumentNullException(String _path, ActionType _type)
        {
            path = _path;
            type = _type;
        }

        public String FilePath
        {
            get { return path; }
            set { path = value; }
        }

        public ActionType Type
        {
            get { return type; }
            set { type = value; }
        }
    }

    class ArgumentOutOfRangeException : Exception
    {        
        private ActionType type;

        public ArgumentOutOfRangeException(ActionType _type)
        {            
            type = _type;
        }        

        public ActionType Type
        {
            get { return type; }
            set { type = value; }
        }
    }

    public class FileNotFoundException : Exception
    {
        private String filePath;
        private ActionType type;

        public FileNotFoundException(String str, ActionType actType)
        {
            filePath = str;
            type = actType;
        }

        public String FilePath
        {
            get { return filePath; }
            set { filePath = value; }
        }

        public ActionType Type
        {
            get { return type; }
            set { type = value; }
        }
    }

    public class DirectoryNotFoundException : Exception
    {
        private String folderPath;
        private ActionType type;

        public DirectoryNotFoundException(string str, ActionType actType)
        {
            folderPath = str;
            type = actType;
        }

        public String FolderPath
        {
            get { return folderPath; }
            set { folderPath = value; }
        }

        public ActionType Type
        {
            get { return type; }
            set { type = value; }
        }
    }

    public class UnauthorizedAccessException : Exception
    {
        private String path;
        private ActionType type;

        public UnauthorizedAccessException(string str, ActionType actType)
        {
            path = str;
            type = actType;
        }

        public String Path
        {
            get { return path; }
            set { path = value; }
        }

        public ActionType Type
        {
            get { return type; }
            set { type = value; }
        }
    }

    public class PathTooLongException : Exception
    {
        private String path;
        private ActionType type;

        public PathTooLongException(string str, ActionType actType)
        {
            path = str;
            type = actType;
        }

        public String Path
        {
            get { return path; }
            set { path = value; }
        }

        public ActionType Type
        {
            get { return type; }
            set { type = value; }
        }
    }

    public class DiskSpaceNotEnoughException : Exception
    {
        private String path;
        private ActionType type;

        public DiskSpaceNotEnoughException(string str, ActionType actType)
        {
            path = str;
            type = actType;
        }

        public String Path
        {
            get { return path; }
            set { path = value; }
        }

        public ActionType Type
        {
            get { return type; }
            set { type = value; }
        }
    }

    public class MetaDataEntryCorruptException : Exception
    {
        public MetaDataEntryCorruptException(String str)
        {
        }
    }

    public class TzyncUIStateException : Exception
    {
        public TzyncUIStateException()
        {
        }
    }

    public class InvalidRootAddressException : Exception
    {
        public InvalidRootAddressException()
        {
        }
    }

    public class ProfileNotUniqueException : Exception
    {
        public ProfileNotUniqueException()
        {
        }
    }
}
